Signed-off-by: Xin Li <xin.b.li@intel.com>
Signed-off-by: Yunhong Jiang <yunhong.jiang@intel.com>
list_ent = d->page_list.next;
- for ( gpfn = 0; list_ent != &d->page_list; gpfn++ )
+ while ( list_ent != &d->page_list )
{
page = list_entry(list_ent, struct page_info, list);
mfn = page_to_mfn(page);
+ gpfn = get_gpfn_from_mfn(mfn);
+
if ( !(error = map_p2m_entry(l1tab, gpfn, mfn)) )
{
domain_crash(d);
break;
}
- list_ent = frame_table[mfn].list.next;
+ list_ent = page->list.next;
}
unmap_domain_page(l1tab);
list_ent = d->page_list.next;
- for ( gpfn = 0; list_ent != &d->page_list; gpfn++ )
+ while ( list_ent != &d->page_list )
{
struct page_info *page;
page = list_entry(list_ent, struct page_info, list);
mfn = page_to_mfn(page);
+ gpfn = get_gpfn_from_mfn(mfn);
+
if ( !(error = map_p2m_entry(top_tab, gpfn, mfn)) )
{
domain_crash(d);
break;
}
- list_ent = frame_table[mfn].list.next;
+ list_ent = page->list.next;
}
unmap_domain_page(top_tab);